gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/rsc_encode.m

    function y = rsc_encode(g, x, terminated)
% 采用递归系统卷积码对输入的数据x进行编码。
% 输入参数包括
% x:待编码信息(0/1)
% g: 生成多项式
% terminated:用于trellis termination
%  
%  Author:		程式小组(徐萌 张妙 张晓庆)
%  Date:		2010-06-20
%  ===========================================================


[n,K] = size(g);
m = K - 1;
if terminated>0
  L_info = length(x);
  L_total = L_info + m;
else
  L_total = length(x);
  L_info = L_total - m;
end  


% 初始化状态向量
state = zeros(1,m);

% 生成码字
for i = 1:L_total
   if terminated<0 | (terminated>0 & i<=L_info)
      d_k = x(1,i);
   elseif terminated>0 & i>L_info
      % 终止
      d_k = rem( g(1,2:K)*state', 2 );
   end
 
   a_k = rem( g(1,:)*[d_k state]', 2 );
   [output_bits, state] = encode_bit(g, a_k, state);
   % 奇数位置输出系统信息比特
   output_bits(1,1) = d_k;
   y(n*(i-1)+1:n*i) = output_bits;
end